package com.jiaozi.system.service;

import com.jiaozi.base.utils.bean.R;
import com.jiaozi.system.entity.SysDepartment;
import com.jiaozi.system.pojo.param.sys.department.DepartmentSaveUpdateParam;
import com.jiaozi.system.pojo.param.sys.department.DepartmentTreeParam;
import com.jiaozi.system.pojo.vo.sys.department.DepartmentInfoVO;
import com.jiaozi.system.pojo.vo.sys.department.DepartmentTreeVO;
import com.github.yulichang.base.MPJBaseService;

import java.util.List;

/**
 * 系统-部门(SysDepartment)表服务接口
 *
 * @author jiaozi
 * @since 2024-08-15 14:02:36
 */
public interface SysDepartmentService extends MPJBaseService<SysDepartment> {
    /**
     * 查询本部门以及下部门
     */
    R<List<DepartmentTreeVO>> departmentListVOR(DepartmentTreeParam departmentTreeParam);

    /**
     * 获取部门信息
     */
    R<DepartmentInfoVO> departmentInfo(String departmentId );

    /**
     * 新增部门信息
     * @param departmentSaveUpdateParam
     * @return
     */
    R departmentSave(DepartmentSaveUpdateParam departmentSaveUpdateParam);

    /**
     * 修改部门信息
     * @param departmentId
     * @param departmentSaveUpdateParam
     * @return
     */
    R departmentUpdate(String departmentId,DepartmentSaveUpdateParam departmentSaveUpdateParam);


    /**
     * 变更部门状态
     * @param departmentId
     * @return
     */
    R updatyeDepartmentState(String departmentId);

    /**
     * 查询本部门以及子部门id
     * @param departmentId
     * @return
     */
    List<String> departmentIdList(String departmentId);

}



